package br.com.vendor_engine.repositorio;

import br.com.vendor_engine.entidades.Produto;
import br.com.vendor_engine.entidades.Produtoproposta;
import br.com.vendor_engine.entidades.Propostalocacao;
import br.com.vendor_engine.entidades.Propostavenda;
import br.com.vendor_engine.interfaces.InterfaceProdutoProposta;
import br.com.vendor_engine.xmlutil.NewHibernateUtil;
import java.util.List;
import org.hibernate.Session;

public class RepositorioProdutoProposta implements InterfaceProdutoProposta {
    
    private Session s = NewHibernateUtil.getSessionFactory().getCurrentSession();
    private Produtoproposta pp = new Produtoproposta();

    @Override
    public void salvarProdutoProposta(Produto produto, Propostalocacao propostaLocacao, 
    Propostavenda propostaVenda) {
        
        pp.setIdProdutoProposta(0);
        pp.setProduto(produto);
        pp.setPropostalocacao(propostaLocacao);
        pp.setPropostavenda(propostaVenda);
        
        s.beginTransaction();
        s.save(pp);
        if (s.getTransaction().isActive()) {
            s.beginTransaction().commit();
            if (s.isOpen()) {
                s.flush();
            }
        }
        if (s.isOpen()) {
            s.close();
            System.out.println("Fechada");
        }        
        
    }

    @Override
    public void alterarProdutoProposta(int idProdutoProposta, Produto produto, 
    Propostalocacao propostaLocacao, Propostavenda propostaVenda) {
        
        pp.setIdProdutoProposta(idProdutoProposta);
        pp.setProduto(produto);
        pp.setPropostalocacao(propostaLocacao);
        pp.setPropostavenda(propostaVenda);
        
        s.beginTransaction();
        s.save(pp);
        if (s.getTransaction().isActive()) {
            s.beginTransaction().commit();
            if (s.isOpen()) {
                s.flush();
            }
        }
        if (s.isOpen()) {
            s.close();
            System.out.println("Fechada");
        }
        
    }

    @Override
    public List<Produtoproposta> pegarTodosProdutoProposta() {        
        s.beginTransaction();
        List<Produtoproposta> list = (List<Produtoproposta>) s.createQuery("from Produtoproposta").list();
      return list;
        
    }

    @Override
    public Produtoproposta getProdutoProposta() {
        return pp;
    }
    
}
